/*
 * ObjetoMemoria.h
 *
 *  Created on: May 24, 2011
 *      Author: murilo
 */

#ifndef OBJETOMEMORIA_H_
#define OBJETOMEMORIA_H_

#define MAX_TAMANHO_MEMORIA 5

typedef enum Estado_Info_
{
	OK,//atualizada no ultimo ciclo
	AK,//atualizada no ciclo passado
	NK,//atualizada ha mto tempo
}EstadoInfo;

template <typename T>
class ObjetoMemoria
{
    public:
        ObjetoMemoria(){}

        int ciclo(){return mCiclo;}
        T      objeto(){return mObjeto;}
        EstadoInfo estado() {return mEstado;}

        void   ciclo(int ciclo){mCiclo = ciclo;}
        void   objeto(T objeto){mObjeto = objeto;}
        void   estado(EstadoInfo estado){mEstado = estado;}
    private:
        EstadoInfo mEstado;
        int mCiclo;
        T mObjeto;
};

#endif /* OBJETOMEMORIA_H_ */
